home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
util
/
cdity
/
availmem2.lha
/
AvailMem2
/
src
/
AvailMem2_gui.s
< prev
next >
Wrap
Text File
|
1997-07-01
|
22KB
|
979 lines
*
* Source machine generated by GadToolsBox V2.0b
* which is (c) Copyright 1991-1993 Jaba Development
*
* GUI Designed by : Jesper Svennevid
*
include 'exec/types.i'
include 'intuition/intuition.i'
include 'intuition/classes.i'
include 'intuition/classusr.i'
include 'intuition/imageclass.i'
include 'intuition/gadgetclass.i'
include 'libraries/gadtools.i'
include 'graphics/displayinfo.i'
include 'graphics/gfxbase.i'
XREF _GadToolsBase
XREF _IntuitionBase
XREF _GfxBase
XREF _SysBase
OpenScreenTagList EQU -612
OpenWindowTagList EQU -606
CloseScreen EQU -66
CloseWindow EQU -72
PrintIText EQU -216
LockPubScreen EQU -510
UnlockPubScreen EQU -516
SetMenuStrip EQU -264
ClearMenuStrip EQU -54
GetVisualInfoA EQU -126
FreeVisualInfo EQU -132
CreateContext EQU -114
CreateGadgetA EQU -30
GT_RefreshWindow EQU -84
FreeGadgets EQU -36
CreateMenusA EQU -48
LayoutMenusA EQU -66
FreeMenus EQU -54
OpenDiskFont EQU -30
CloseFont EQU -78
DrawBevelBoxA EQU -120
FreeClass EQU -714
NewObjectA EQU -636
DisposeObject EQU -642
TextLength EQU -54
CopyMem EQU -624
FindTagItem EQU -30
IntuiTextLength EQU -330
Forbid EQU -132
Permit EQU -138
GD_Percentage EQU 0
GD_FlushButtons EQU 1
GD_Seperative_Lines EQU 2
GD_FastMemory EQU 3
GD_ChipMemory EQU 4
GD_PublicMemory EQU 5
GD_LargestMemBlock EQU 6
GD_RemainingMemBlock EQU 7
GD_ScreenName EQU 8
GD_WindowTitle EQU 9
GD_Ok EQU 10
GD_Cancel EQU 11
GD_RefreshRate EQU 12
GD_MinimizedBorders EQU 13
GD_RemoveBorders EQU 14
GD_CPUUsage EQU 15
GD_AlwaysOnTop EQU 16
GD_GoBackdrop EQU 17
Settings_CNT EQU 18
XDEF Scr
XDEF VisualInfo
XDEF PubScreenName
XDEF MemoryDisplayWnd
XDEF SettingsWnd
XDEF ResizeWnd
XDEF SettingsGList
XDEF MemoryDisplayMenus
XDEF SettingsGadgets
XDEF MemoryDisplayLeft
XDEF MemoryDisplayTop
XDEF MemoryDisplayWidth
XDEF MemoryDisplayHeight
XDEF SettingsLeft
XDEF SettingsTop
XDEF SettingsWidth
XDEF SettingsHeight
XDEF ResizeLeft
XDEF ResizeTop
XDEF ResizeWidth
XDEF ResizeHeight
Scr:
DC.L 0
VisualInfo:
DC.L 0
PubScreenName:
DC.L 0
MemoryDisplayWnd:
DC.L 0
SettingsWnd:
DC.L 0
ResizeWnd:
DC.L 0
SettingsGList:
DC.L 0
MemoryDisplayMenus:
DC.L 0
MTags0:
DC.L GTMN_FrontPen,0,GTMN_NewLookMenus, 1,TAG_DONE
MTags1:
DC.L GTMN_FrontPen,0,GTMN_NewLookMenus, 1,TAG_DONE
SettingsGadgets:
DCB.L 18,0
BufNewGad:
DC.W 0,0,0,0
DC.L 0,0
DC.W 0
DC.L 0,0,0
TD:
DC.L TAG_DONE
MemoryDisplayLeft:
DC.W 439
MemoryDisplayTop:
DC.W 11
MemoryDisplayWidth:
DC.W 201
MemoryDisplayHeight:
DC.W 27
SettingsLeft:
DC.W 0
SettingsTop:
DC.W 11
SettingsWidth:
DC.W 404
SettingsHeight:
DC.W 176
ResizeLeft:
DC.W 10
ResizeTop:
DC.W 15
ResizeWidth:
DC.W 280
ResizeHeight:
DC.W 92
MemoryDisplayGTypes:
SettingsGTypes:
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W PALETTE_KIND
DC.W PALETTE_KIND
DC.W STRING_KIND
DC.W STRING_KIND
DC.W BUTTON_KIND
DC.W BUTTON_KIND
DC.W CYCLE_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
DC.W CHECKBOX_KIND
ResizeGTypes:
MemoryDisplayNGads:
SettingsNGads:
DC.W 14,11,26,11
DC.L PercentageText,0
DC.W GD_Percentage
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,-1,26,11
DC.L FlushButtonsText,0
DC.W GD_FlushButtons
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,23,26,11
DC.L Seperative_LinesText,0
DC.W GD_Seperative_Lines
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,106,26,11
DC.L FastMemoryText,0
DC.W GD_FastMemory
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,94,26,11
DC.L ChipMemoryText,0
DC.W GD_ChipMemory
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,118,26,11
DC.L PublicMemoryText,0
DC.W GD_PublicMemory
DC.L PLACETEXT_RIGHT,0,0
DC.W 207,87,169,20
DC.L LargestMemBlockText,0
DC.W GD_LargestMemBlock
DC.L PLACETEXT_ABOVE!NG_HIGHLABEL,0,0
DC.W 205,121,169,20
DC.L RemainingMemBlockText,0
DC.W GD_RemainingMemBlock
DC.L PLACETEXT_ABOVE!NG_HIGHLABEL,0,0
DC.W 206,1,169,15
DC.L ScreenNameText,0
DC.W GD_ScreenName
DC.L PLACETEXT_ABOVE!NG_HIGHLABEL,0,0
DC.W 205,57,169,16
DC.L WindowTitleText,0
DC.W GD_WindowTitle
DC.L PLACETEXT_ABOVE!NG_HIGHLABEL,0,0
DC.W 3,143,92,14
DC.L OkText,0
DC.W GD_Ok
DC.L PLACETEXT_IN,0,0
DC.W 293,143,92,14
DC.L CancelText,0
DC.W GD_Cancel
DC.L PLACETEXT_IN,0,0
DC.W 207,28,169,15
DC.L RefreshRateText,0
DC.W GD_RefreshRate
DC.L PLACETEXT_ABOVE!NG_HIGHLABEL,0,0
DC.W 14,35,26,11
DC.L MinimizedBordersText,0
DC.W GD_MinimizedBorders
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,47,26,11
DC.L RemoveBordersText,0
DC.W GD_RemoveBorders
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,130,26,11
DC.L CPUUsageText,0
DC.W GD_CPUUsage
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,59,26,11
DC.L AlwaysOnTopText,0
DC.W GD_AlwaysOnTop
DC.L PLACETEXT_RIGHT,0,0
DC.W 14,71,26,11
DC.L GoBackdropText,0
DC.W GD_GoBackdrop
DC.L PLACETEXT_RIGHT,0,0
ResizeNGads:
MemoryDisplayGTags:
SettingsGTags:
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L GTPA_Depth,3
DC.L GTPA_IndicatorWidth,50
DC.L GTPA_Color,3
DC.L GTPA_ColorOffset,0
DC.L TAG_DONE
DC.L GTPA_Depth,3
DC.L GTPA_IndicatorWidth,50
DC.L GTPA_Color,2
DC.L GTPA_ColorOffset,0
DC.L TAG_DONE
DC.L GTST_MaxChars,256
DC.L TAG_DONE
DC.L GTST_MaxChars,256
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L GTCY_Labels,RefreshRateLabels
DC.L GTCY_Active,2
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
DC.L TAG_DONE
ResizeGTags:
PercentageText:
DC.B 'Percentage',0
FlushButtonsText:
DC.B 'FlushButtons',0
Seperative_LinesText:
DC.B 'Seperative Lines',0
FastMemoryText:
DC.B 'Fast Memory',0
ChipMemoryText:
DC.B 'Chip Memory',0
PublicMemoryText:
DC.B 'Public Memory',0
LargestMemBlockText:
DC.B 'Largest Memory Block',0
RemainingMemBlockText:
DC.B 'Remaining Memory Block',0
ScreenNameText:
DC.B 'Screen Name',0
WindowTitleText:
DC.B 'Window Title',0
OkText:
DC.B 'Ok',0
CancelText:
DC.B 'Cancel',0
RefreshRateText:
DC.B 'Refresh Rate',0
MinimizedBordersText:
DC.B 'Minimized Borders',0
RemoveBordersText:
DC.B 'Remove Borders',0
CPUUsageText:
DC.B 'CPU Usage',0
AlwaysOnTopText:
DC.B 'Always On Top',0
GoBackdropText:
DC.B 'Go Backdrop',0
CNOP 0,2
XDEF RefreshRateLabels
RefreshRateLabels:
DC.L RefreshRateLab0
DC.L RefreshRateLab1
DC.L RefreshRateLab2
DC.L RefreshRateLab3
DC.L RefreshRateLab4
DC.L 0
RefreshRateLab0: DC.B 'Every VBL',0
RefreshRateLab1: DC.B 'Every 2:nd VBL',0
RefreshRateLab2: DC.B 'Every 3:rd VBL',0
RefreshRateLab3: DC.B 'Every 4:th VBL',0
RefreshRateLab4: DC.B 'Every 5:th VBL',0
CNOP 0,2
XDEF MemoryDisplayWindowTags
MemoryDisplayWindowTags:
MemoryDisplayL:
DC.L WA_Left,0
MemoryDisplayT:
DC.L WA_Top,0
MemoryDisplayW:
DC.L WA_Width,0
MemoryDisplayH:
DC.L WA_Height,0
DC.L WA_IDCMP,IDCMP_GADGETUP!IDCMP_MENUPICK!IDCMP_CLOSEWINDOW!IDCMP_CHANGEWINDOW!IDCMP_REFRESHWINDOW
DC.L WA_Flags,WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_SMART_REFRESH!WFLG_GIMMEZEROZERO!WFLG_ACTIVATE
DC.L WA_Title,MemoryDisplayWTitle
DC.L WA_ScreenTitle,STitle
MemoryDisplaySC:
DC.L WA_PubScreen,0
DC.L WA_AutoAdjust,1
DC.L WA_NewLookMenus,1
DC.L WA_PubScreenFallBack,1
DC.L TAG_DONE
MemoryDisplayWTitle:
DC.B 'Available Memory',0
CNOP 0,2
STitle:
DC.B 'AvailMem v2.0 Copyright © 1996-1997 Jesper Svennevid',0
CNOP 0,2
XDEF SettingsWindowTags
SettingsWindowTags:
SettingsL:
DC.L WA_Left,0
SettingsT:
DC.L WA_Top,0
SettingsW:
DC.L WA_Width,0
SettingsH:
DC.L WA_Height,0
DC.L WA_IDCMP,CHECKBOXIDCMP!PALETTEIDCMP!STRINGIDCMP!BUTTONIDCMP!CYCLEIDCMP!IDCMP_GADGETDOWN!IDCMP_CLOSEWINDOW!IDCMP_REFRESHWINDOW
DC.L WA_Flags,WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_SMART_REFRESH!WFLG_GIMMEZEROZERO!WFLG_ACTIVATE!WFLG_RMBTRAP
SettingsWG:
DC.L WA_Gadgets,0
DC.L WA_Title,SettingsWTitle
DC.L WA_ScreenTitle,STitle
SettingsSC:
DC.L WA_PubScreen,0
DC.L WA_AutoAdjust,1
DC.L WA_PubScreenFallBack,1
DC.L TAG_DONE
SettingsWTitle:
DC.B 'AvailMem Settings',0
CNOP 0,2
XDEF ResizeWindowTags
ResizeWindowTags:
ResizeL:
DC.L WA_Left,0
ResizeT:
DC.L WA_Top,0
ResizeW:
DC.L WA_Width,0
ResizeH:
DC.L WA_Height,0
DC.L WA_IDCMP,IDCMP_CLOSEWINDOW!IDCMP_CHANGEWINDOW!IDCMP_REFRESHWINDOW
DC.L WA_Flags,WFLG_SIZEGADGET!WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_SMART_REFRESH!WFLG_SIMPLE_REFRESH!WFLG_ACTIVATE!WFLG_RMBTRAP
DC.L WA_Title,ResizeWTitle
DC.L WA_ScreenTitle,STitle
ResizeSC:
DC.L WA_PubScreen,0
DC.L WA_MinWidth,80
DC.L WA_MinHeight,42
DC.L WA_MaxWidth,640
DC.L WA_MaxHeight,512
DC.L WA_AutoAdjust,1
DC.L WA_PubScreenFallBack,1
DC.L TAG_DONE
ResizeWTitle:
DC.B '<-- Close when done',0
CNOP 0,2
XDEF SettingsText0
SettingsText0:
DC.B 2,0
DC.B RP_JAM1
DC.B 0
DC.W 10,84
DC.L 0
DC.L SettingsIText0
DC.L SettingsText1
SettingsText1:
DC.B 2,0
DC.B RP_JAM1
DC.B 0
DC.W 10,-11
DC.L 0
DC.L SettingsIText1
DC.L 0
SettingsIText0:
DC.B 'Bars Displayed',0
SettingsIText1:
DC.B 'Attributes',0
CNOP 0,2
XDEF MemoryDisplayNewMenu0
MemoryDisplayNewMenu0:
DC.B NM_TITLE,0
DC.L MemoryDisplayMName0
DC.L 0
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu1:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName1
DC.L MemoryDisplayMComm1
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu2:
DC.B NM_ITEM,0
DC.L NM_BARLABEL,0
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu3:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName3
DC.L MemoryDisplayMComm3
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu4:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName4
DC.L MemoryDisplayMComm4
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu5:
DC.B NM_TITLE,0
DC.L MemoryDisplayMName5
DC.L 0
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu6:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName6
DC.L MemoryDisplayMComm6
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu7:
DC.B NM_ITEM,0
DC.L NM_BARLABEL,0
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu8:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName8
DC.L MemoryDisplayMComm8
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu9:
DC.B NM_ITEM,0
DC.L NM_BARLABEL,0
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu10:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName10
DC.L MemoryDisplayMComm10
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu11:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName11
DC.L MemoryDisplayMComm11
DC.W 0
DC.L 0,0
MemoryDisplayNewMenu12:
DC.B NM_ITEM,0
DC.L MemoryDisplayMName12
DC.L MemoryDisplayMComm12
DC.W 0
DC.L 0,0
DC.B NM_END,0
DC.L 0,0
DC.W 0
DC.L 0,0
MemoryDisplayMName0:
DC.B 'Project',0
MemoryDisplayMName1:
DC.B 'About...',0
MemoryDisplayMComm1:
DC.B '?',0
MemoryDisplayMName3:
DC.B 'Hide',0
MemoryDisplayMComm3:
DC.B 'H',0
MemoryDisplayMName4:
DC.B 'Quit...',0
MemoryDisplayMComm4:
DC.B 'Q',0
MemoryDisplayMName5:
DC.B 'Settings',0
MemoryDisplayMName6:
DC.B 'Resize Window',0
MemoryDisplayMComm6:
DC.B 'R',0
MemoryDisplayMName8:
DC.B 'Modify Settings...',0
MemoryDisplayMComm8:
DC.B 'M',0
MemoryDisplayMName10:
DC.B 'Load Settings...',0
MemoryDisplayMComm10:
DC.B 'O',0
MemoryDisplayMName11:
DC.B 'Save Settings',0
MemoryDisplayMComm11:
DC.B 'W',0
MemoryDisplayMName12:
DC.B 'Reset To Defaults',0
MemoryDisplayMComm12:
DC.B 'D',0
CNOP 0,2
XDEF SetupScreen
SetupScreen
movem.l d1-d3/a0-a2/a6,-(sp)
move.l _IntuitionBase,a6
move.l PubScreenName,a0
jsr LockPubScreen(a6)
move.l d0,Scr
tst.l d0
beq SError
move.l Scr,a0
move.l _GadToolsBase,a6
lea.l TD,a1
jsr GetVisualInfoA(a6)
move.l d0,VisualInfo
tst.l d0
beq VError
moveq #0,d0
SDone:
movem.l (sp)+,d1-d3/a0-a2/a6
rts
SError:
moveq #1,d0
bra.s SDone
VError:
moveq #2,d0
bra.s SDone
XDEF CloseDownScreen
CloseDownScreen:
movem.l d0-d1/a0-a1/a6,-(sp)
move.l _GadToolsBase,a6
move.l VisualInfo,a0
cmpa.l #0,a0
beq.s NoVis
jsr FreeVisualInfo(a6)
move.l #0,VisualInfo
NoVis:
move.l _IntuitionBase,a6
suba.l a0,a0
move.l Scr,a1
cmpa.l #0,a1
beq.s NoScr
jsr UnlockPubScreen(a6)
move.l #0,Scr
NoScr:
movem.l (sp)+,d0-d1/a0-a1/a6
rts
XDEF OpenMemoryDisplayWindow
OpenMemoryDisplayWindow:
movem.l d1-d4/a0-a4/a6,-(sp)
move.l Scr,a0
moveq #0,d3
moveq #0,d2
move.b sc_WBorLeft(a0),d2
move.l sc_Font(a0),a1
move.w ta_YSize(a1),d3
addq.w #1,d3
move.b sc_WBorTop(a0),d0
ext.w d0
add.w d0,d3
move.l _GadToolsBase,a6
lea.l MemoryDisplayNewMenu0,a0
lea.l MTags0,a1
jsr CreateMenusA(a6)
move.l d0,MemoryDisplayMenus
tst.l d0
beq MemoryDisplayMError
move.l d0,a0
move.l VisualInfo,a1
lea.l MTags1,a2
jsr LayoutMenusA(a6)
move.l Scr,MemoryDisplaySC+4
moveq #0,d0
move.w MemoryDisplayLeft,d0
move.l d0,MemoryDisplayL+4
move.w MemoryDisplayTop,d0
move.l d0,MemoryDisplayT+4
move.w MemoryDisplayWidth,d0
move.l d0,MemoryDisplayW+4
move.w MemoryDisplayHeight,d0
add.w d3,d0
move.l d0,MemoryDisplayH+4
move.l _IntuitionBase,a6
suba.l a0,a0
lea.l MemoryDisplayWindowTags,a1
jsr OpenWindowTagList(a6)
move.l d0,MemoryDisplayWnd
tst.l d0
beq MemoryDisplayWError
move.l MemoryDisplayWnd,a0
move.l MemoryDisplayMenus,a1
jsr SetMenuStrip(a6)
move.l _GadToolsBase,a6
move.l MemoryDisplayWnd,a0
suba.l a1,a1
jsr GT_RefreshWindow(a6)
moveq #0,d0
MemoryDisplayDone:
movem.l (sp)+,d1-d4/a0-a4/a6
rts
MemoryDisplayMError:
moveq #3,d0
bra.s MemoryDisplayDone
MemoryDisplayWError:
moveq #4,d0
bra.s MemoryDisplayDone
XDEF CloseMemoryDisplayWindow
CloseMemoryDisplayWindow:
movem.l d0-d1/a0-a2/a6,-(sp)
move.l _IntuitionBase,a6
move.l MemoryDisplayMenus,a0
cmpa.l #0,a0
beq MemoryDisplayNMenu
move.l MemoryDisplayWnd,a0
jsr ClearMenuStrip(a6)
move.l _GadToolsBase,a6
move.l MemoryDisplayMenus,a0
jsr FreeMenus(a6)
move.l #0,MemoryDisplayMenus
MemoryDisplayNMenu:
move.l _IntuitionBase,a6
move.l MemoryDisplayWnd,a0
cmpa.l #0,a0
beq MemoryDisplayNWnd
jsr CloseWindow(a6)
move.l #0,MemoryDisplayWnd
MemoryDisplayNWnd:
movem.l (sp)+,d0-d1/a0-a2/a6
rts
XDEF SettingsRender
SettingsRender:
movem.l d0-d5/a0-a2/a6,-(sp)
move.l SettingsWnd,a0
move.b wd_BorderLeft(a0),d4
ext.w d4
move.b wd_BorderTop(a0),d5
ext.w d5
move.l _IntuitionBase,a6
move.l SettingsWnd,a0
move.l wd_RPort(a0),a0
lea.l SettingsText0,a1
move.l d4,d0
move.l d5,d1
jsr PrintIText(a6)
movem.l (sp)+,d0-d5/a0-a2/a6
rts
XDEF OpenSettingsWindow
OpenSettingsWindow:
movem.l d1-d4/a0-a4/a6,-(sp)
move.l Scr,a0
moveq #0,d3
moveq #0,d2
move.b sc_WBorLeft(a0),d2
move.l sc_Font(a0),a1
move.w ta_YSize(a1),d3
addq.w #1,d3
move.b sc_WBorTop(a0),d0
ext.w d0
add.w d0,d3
move.l _GadToolsBase,a6
lea.l SettingsGList,a0
jsr CreateContext(a6)
move.l d0,a3
tst.l d0
beq SettingsCError
movem.w d2-d3,-(sp)
moveq #0,d3
lea.l SettingsGTags,a4
SettingsGL:
move.l _SysBase,a6
lea.l SettingsNGads,a0
move.l d3,d0
mulu #gng_SIZEOF,d0
add.l d0,a0
lea.l BufNewGad,a1
moveq #gng_SIZEOF,d0
jsr CopyMem(a6)
lea.l BufNewGad,a0
move.l VisualInfo,gng_VisualInfo(a0)
move.l #0,gng_TextAttr(a0)
move.w gng_LeftEdge(a0),d0
add.w (sp),d0
move.w d0,gng_LeftEdge(a0)
move.w gng_TopEdge(a0),d0
add.w 2(sp),d0
move.w d0,gng_TopEdge(a0)
move.l _GadToolsBase,a6
lea.l SettingsGTypes,a0
moveq #0,d0
move.l d3,d1
asl.l #1,d1
add.l d1,a0
move.w (a0),d0
move.l a3,a0
lea.l BufNewGad,a1
move.l a4,a2
jsr CreateGadgetA(a6)
tst.l d0
bne.s SettingsCOK
movem.w (sp)+,d2-d3
bra SettingsGError
SettingsCOK:
move.l d0,a3
move.l d3,d0
asl.l #2,d0
lea.l SettingsGadgets,a0
add.l d0,a0
move.l a3,(a0)
SettingsTL:
tst.l (a4)
beq.s SettingsDN
addq.w #8,a4
bra.s SettingsTL
SettingsDN:
addq.w #4,a4
addq.w #1,d3
cmp.w #Settings_CNT,d3
bmi SettingsGL
movem.w (sp)+,d2-d3
move.l SettingsGList,SettingsWG+4
move.l Scr,SettingsSC+4
moveq #0,d0
move.w SettingsLeft,d0
move.l d0,SettingsL+4
move.w SettingsTop,d0
move.l d0,SettingsT+4
move.w SettingsWidth,d0
move.l d0,SettingsW+4
move.w SettingsHeight,d0
add.w d3,d0
move.l d0,SettingsH+4
move.l _IntuitionBase,a6
suba.l a0,a0
lea.l SettingsWindowTags,a1
jsr OpenWindowTagList(a6)
move.l d0,SettingsWnd
tst.l d0
beq SettingsWError
move.l _GadToolsBase,a6
move.l SettingsWnd,a0
suba.l a1,a1
jsr GT_RefreshWindow(a6)
jsr SettingsRender
moveq #0,d0
SettingsDone:
movem.l (sp)+,d1-d4/a0-a4/a6
rts
SettingsCError:
moveq #1,d0
bra.s SettingsDone
SettingsGError:
moveq #2,d0
bra.s SettingsDone
SettingsWError:
moveq #4,d0
bra.s SettingsDone
XDEF CloseSettingsWindow
CloseSettingsWindow:
movem.l d0-d1/a0-a2/a6,-(sp)
move.l _IntuitionBase,a6
move.l SettingsWnd,a0
cmpa.l #0,a0
beq SettingsNWnd
jsr CloseWindow(a6)
move.l #0,SettingsWnd
SettingsNWnd:
move.l _GadToolsBase,a6
move.l SettingsGList,a0
cmpa.l #0,a0
beq SettingsNGad
jsr FreeGadgets(a6)
move.l #0,SettingsGList
SettingsNGad:
movem.l (sp)+,d0-d1/a0-a2/a6
rts
XDEF OpenResizeWindow
OpenResizeWindow:
movem.l d1-d4/a0-a4/a6,-(sp)
move.l Scr,a0
moveq #0,d3
moveq #0,d2
move.b sc_WBorLeft(a0),d2
move.l sc_Font(a0),a1
move.w ta_YSize(a1),d3
addq.w #1,d3
move.b sc_WBorTop(a0),d0
ext.w d0
add.w d0,d3
move.l Scr,ResizeSC+4
moveq #0,d0
move.w ResizeLeft,d0
move.l d0,ResizeL+4
move.w ResizeTop,d0
move.l d0,ResizeT+4
move.w ResizeWidth,d0
move.l d0,ResizeW+4
move.w ResizeHeight,d0
add.w d3,d0
move.l d0,ResizeH+4
move.l _IntuitionBase,a6
suba.l a0,a0
lea.l ResizeWindowTags,a1
jsr OpenWindowTagList(a6)
move.l d0,ResizeWnd
tst.l d0
beq ResizeWError
move.l _GadToolsBase,a6
move.l ResizeWnd,a0
suba.l a1,a1
jsr GT_RefreshWindow(a6)
moveq #0,d0
ResizeDone:
movem.l (sp)+,d1-d4/a0-a4/a6
rts
ResizeWError:
moveq #4,d0
bra.s ResizeDone
XDEF CloseResizeWindow
CloseResizeWindow:
movem.l d0-d1/a0-a2/a6,-(sp)
move.l _IntuitionBase,a6
move.l ResizeWnd,a0
cmpa.l #0,a0
beq ResizeNWnd
jsr CloseWindow(a6)
move.l #0,ResizeWnd
ResizeNWnd:
movem.l (sp)+,d0-d1/a0-a2/a6
rts
end